Conventionally, ASRC is used for converting audio signals from one sample frequency to another, while the information carried by the audio signals is not substantially changed. The input and output sample frequencies can be an arbitrary fraction of one another or the same frequency, but based on different clocking signals. The output signal, generally speaking, is a band-limited version of the input signal resampled to match the output sample timing. Thus, the ASRC finds application in transmitting signals between discrete-time systems having different sampling rates. For example, two different audio systems may use sampling rates of 48 and 96 kHz.
A common technique for sampling rate conversion is to use a combination of up-sampling, filtering and down-sampling. This approach works well if the ratio of sampling rates is a rational number. In many cases, however, the sampling rates are not related by a rational number. This occurs frequently when trying to synchronize audio signals arriving on separate digital networks. For example, a first system may transmit signals at the sampling rate of 44.1 kHz to a second system operating at a frequency slightly less than 44.1 kHz. In fact, the input data rate may be slowly varying, in which case the receiving system will accommodate these variations. In these cases, irrational sampling rate conversion may be needed. However, conventional irrational sampling rate conversion techniques and corresponding digital ASRC filters may be computationally inefficient and may require large memory resources. Moreover, conventional ASRC techniques may have poor unconditional stability when used in time-varying filtering. Some other known ASRC techniques may generate unwanted noise or may affect the quality of transmitted signal. Thus, there is a need to improve the ASRC methods and eliminate known drawbacks.